package day14_io.demo06_Buffered字符缓冲流;

import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

//读取所有数据,并存储到ArrayList<>中
//分类聚合
//把结果进行存储
public class Demo06_循环读取文件并求结果 {
    public static void main(String[] args) throws Exception{
        ArrayList<String> list = new ArrayList<>();//用于存储所有数据
        File file = new File("E:\\csw\\Demo\\csw1\\a");
        File[] files = file.listFiles();//获取所有文件的对象
        for (File file1 : files) {
            BufferedReader br = new BufferedReader(new FileReader(file1.getAbsoluteFile()));
            String s;
            while ((s=br.readLine())!=null){
//                System.out.println(s);//输出所有数据
                list.add(s);
            }
            br.close();
        }
        //分类聚合
        HashMap<String, Integer> hashMap = new HashMap<>();
        //遍历所有数据 如果存在加1  不存在添加1
        for (String s : list) {
            if (hashMap.containsKey(s)){//判断集合中是否包含指定key
                hashMap.put(s,hashMap.get(s)+1);//get:根据key获取value
            }else{
                hashMap.put(s,1);
            }
        }
        System.out.println(hashMap);
        //把结果进行存储
        BufferedWriter bw = new BufferedWriter(new FileWriter("E:\\csw\\Demo\\b\\sb.txt"));
        Set<Map.Entry<String, Integer>> entries = hashMap.entrySet();//获取所有k和v的值
        for (Map.Entry<String, Integer> entry : entries) {
            String key = entry.getKey();
            Integer value = entry.getValue();
            bw.write(key+":"+value);
            bw.newLine();
        }
        bw.close();
    }
}
